import Fly from "flyio/dist/npm/wx"
const fly = new Fly;

let url_config = ""
if (process.env.NODE_ENV === 'development') {
	// 开发环境
	url_config = "http://192.168.0.234:9088"
	// url_config = "http://192.168.0.141:9088"
	// url_config = "http://192.168.0.134:9088"
	// url_config = "https://jsjhj.net"
} else {
	// 生产环境
	// url_config = "http://192.168.0.214:9088"
	url_config = "https://jsjhj.net"
	// url_config = "http://192.168.0.234:9088"
	// url_config = "http://172.20.10.3:9088"
	// url_config = "http://192.168.0.134:9088"
	// url_config = "http://192.168.0.141:9088"
	// url_config = "http://192.168.137.3:9088"
}

function get(api, data, header = {}) {
	return fly.request({
		method: 'GET',
		url: url_config + api,
		headers: header,
		params: data,
	})
}

function post(api, data, header = {}) {
	return new Promise((resolve, reject) => {
		fly.request({
			method: 'POST',
			url: url_config + api,
			body: data,
			headers: {
				"Content-Type": "application/x-www-form-urlencoded",
				"accept": "*/*"
			}
		}).then(res => {
			resolve(res.data);
		}).catch(e => {
			reject(e)
		})
	})
}

function getBaseUrl() {
	return url_config;
}
//添加请求拦截器
fly.interceptors.request.use((request) => {
	//可以显式返回request, 也可以不返回，没有返回值时拦截器中默认返回request
	return request;
})
//添加响应拦截器，响应拦截器会在then/catch处理之前执行
fly.interceptors.response.use(
	(response) => {
		// console.log(response);

		// if (response.data.errcode != 0) {
		// 	uni.showToast({
		// 		icon: 'none',
		// 		title: response.data.message
		// 	})
		// 	uni.redirectTo({
		// 		url: '/pages/main/home'
		// 	})
		// }

		if (response.data.message == "Token 过期！") {
			uni.clearStorageSync();
			uni.redirectTo({
				url: '/pages/main/home'
			})
		}
		//验证失效
		// if (response.data.errcode === 401||response.data.errcode === 1001) {
		// 	// debugger
		// 	console.log(response.data.errcode)
		// 	uni.clearStorageSync();
		// 	// uni.switchTab({
		// 	// 	url: '/pages/main/mine'
		// 	// })
		// 	fly.lock(); //锁定响应拦截器，
		// 	let newFly = new Fly;
		// 	let userInfo = JSON.parse(uni.getStorageSync('userInfo'));

		// 	// let token = uni.getStorageSync('token');
		// 	return newFly.request({
		// 			method: 'POST',
		// 			url: url_config + "/api/v1/access_token/0",
		// 			body: {
		// 				access_token: userInfo.access_token
		// 			},
		// 			headers: {
		// 				"Content-Type": "application/x-www-form-urlencoded",
		// 				"accept": "*/*"
		// 			}
		// 		})
		// 		.then((d) => {

		// 			userInfo.access_token = d.data.data.access_token
		// 			uni.setStorageSync('userInfo', userInfo);
		// 			uni.clearStorageSync();
		// 		})
		// 		.finally(() => fly.unlock()) //解锁
		// 		.then(() => {
		// 			return fly.request(response.request);
		// 		})
		// } else {
		// 	return response;
		// }

		if (response.data.errcode === 401 || response.data.errcode === 1001) {
			uni.clearStorageSync();
			uni.switchTab({
				url: '/pages/main/mine'
			})
			return;
		} else {
			return response;
		}

		if (response.data.errcode != 0) {
			uni.showToast({
				icon: 'none',
				title: response.data.message
			})
			uni.redirectTo({
				url: '/pages/main/home'
			})
			return;
		}

	},
	(err) => {
		//发生网络错误后会走到这里
		//return Promise.resolve("ssss")
	}
)
export default {
	get,
	post,
	getBaseUrl
}
